package fr.afcepf.al23.qualite.data;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import fr.afcepf.al23.qualite.entity.Utilisateur;
/**
 *
 * @author Stagiaire
 *
 */
public class DaoUtilisateur implements IDaoUtilisateur {
    /**
     * qsdfqsdqsd.
     */
    private DataSource ds = new QualiteDataSource();
    /**
     *private final static String reqConnection.
     */
    private static final  String REQCONNECTION = "select * from utilisateur where mail= ? and mdp = ?";
    /**
     *indice du paramaetre mail ds la requete.
     */
    private final int indiceParamMailReqConnect = 1;
    /**
     *indice du paramaetre mdp ds la requete.
     */
    private final int indiceParamMdpReqConnect = 2;
    /**
     *sdfsdf.
     */
    private final String colonneId = "id";
    /**
     *sdfsdf.
     */
    private final String colonneMdp = "mdp";
    /**
     *sdfsdf.
     */
    private final String colonneNom = "nom";
    /**
     *sdfsdf.
     */
    private final String colonneMail = "mail";

    @Override
    public Utilisateur seConnecter(String paramMail, String paramMdp) {
        Utilisateur user = null;
        Connection cnx = null;
        try {
            cnx = ds.getConnection();
            PreparedStatement pstmt = cnx.prepareStatement(REQCONNECTION);
            pstmt.setString(indiceParamMailReqConnect, paramMail);
            pstmt.setString(indiceParamMdpReqConnect, paramMdp);
            ResultSet rs = pstmt.executeQuery();
            if (rs.next()) {
                user = rsToUtilisateur(rs);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                cnx.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return user;
    }
    /**
     *
     * @param paramRS haha.
     * @return haha.
     * @throws SQLException haha.
     */
    private Utilisateur rsToUtilisateur(ResultSet paramRS) throws SQLException {
        Utilisateur user = new Utilisateur(
                paramRS.getInt(colonneId), paramRS.getString(colonneNom), paramRS.getString(colonneMail), paramRS.getString(colonneMdp));
        return user;
    }
    @Override
    public Utilisateur enregistrer(Utilisateur paramUtilisateur) {
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    public boolean verifMail(String paramMail) {
        // TODO Auto-generated method stub
        return false;
    }
}
